import java.util.ArrayList;
import java.util.List;

/**
 * 1822. 数组元素积的符号
 * https://leetcode-cn.com/problems/sign-of-the-product-of-an-array/
 */
public class Solutions_1822 {
    public static void main(String[] args) {
        int[] nums1 = {-1, -2, -3, -4, 3, 2, 1};  // output: 1
        int[] nums2 = {1, 5, 0, 2, -3};  // output: 0
        int[] nums3 = {-1, 1, -1, 1, -1};  // output: -1

        List<int[]> inputs = new ArrayList<>();
        inputs.add(nums1);
        inputs.add(nums2);
        inputs.add(nums3);

        for (int[] input : inputs) {
            int result = arraySign(input);
            System.out.println(result);
        }
    }

    /**
     * 偶数个负数相乘，结果为正数
     * 奇数个负数相乘，结果为负数
     * 任何数与 0 相乘，结果为 0
     */
    public static int arraySign(int[] nums) {
        int negativeCnt = 0;
        for (int num : nums) {
            if (num == 0) {
                // 结果为 0
                return 0;
            } else if (num < 0) {
                negativeCnt ++;
            }
        }
        if (negativeCnt % 2 == 1) {
            // 结果为负数
            return -1;
        }
        // 结果为正数
        return 1;
    }
}
